package tienda.internal.producto;

import java.sql.ResultSet;
import java.sql.SQLException;

import javax.sql.DataSource;

import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;

public class JdbcAlmacen implements Almacen{
	
	private SimpleJdbcTemplate jdbcTemplate;
	
	public JdbcAlmacen(DataSource dataSource){
		this.jdbcTemplate = new SimpleJdbcTemplate(dataSource);
	}

	@SuppressWarnings("deprecation")
	public Producto buscarProducto(String codigo) {
		return (Producto) jdbcTemplate.queryForObject("select * from producto where codigo=?",
				new ParameterizedRowMapper<Producto>() {
					public Producto mapRow(ResultSet resultSet, int row)
							throws SQLException {
						Producto producto = new Producto();
						producto.setCodigo(resultSet.getString("codigo"));
						producto.setNombre(resultSet.getString("nombre"));
						producto.setPrecio(resultSet.getDouble("precio"));
						return producto;
					}
				}, codigo);
	}

	public void registrarProducto(Producto producto) {
		jdbcTemplate.update("insert into producto values(?,?,?)", 
				producto.getCodigo(), producto.getNombre(), producto.getPrecio());
	}

}
